<?php
defined('BASEPATH') or exit('No direct script access allowed');

/*
 * | -------------------------------------------------------------------
 * | USER AGENT TYPES
 * | -------------------------------------------------------------------
 * | This file contains four arrays of user agent data. It is used by the
 * | User Agent Class to help identify browser, platform, robot, and
 * | mobile device data. The array keys are used to identify the device
 * | and the array values are used to set the actual name of the item.
 */
$platforms = array(
    'windows nt 10.0' => 'Windows 10',
    'windows nt 6.3' => 'Windows 8.1',
    'windows nt 6.2' => 'Windows 8',
    'windows nt 6.1' => 'Windows 7',
    'windows nt 6.0' => 'Windows Vista',
    'windows nt 5.2' => 'Windows 2003',
    'windows nt 5.1' => 'Windows XP',
    'windows nt 5.0' => 'Windows 2000',
    'windows nt 4.0' => 'Windows NT 4.0',
    'winnt4.0' => 'Windows NT 4.0',
    'winnt 4.0' => 'Windows NT',
    'winnt' => 'Windows NT',
    'windows 98' => 'Windows 98',
    'win98' => 'Windows 98',
    'windows 95' => 'Windows 95',
    'win95' => 'Windows 95',
    'windows phone' => 'Windows Phone',
    'windows' => 'Unknown Windows OS',
    'android' => 'Android',
    'blackberry' => 'BlackBerry',
    'iphone' => 'iOS',
    'ipad' => 'iOS',
    'ipod' => 'iOS',
    'os x' => 'Mac OS X',
    'ppc mac' => 'Power PC Mac',
    'freebsd' => 'FreeBSD',
    'ppc' => 'Macintosh',
    'linux' => 'Linux',
    'debian' => 'Debian',
    'sunos' => 'Sun Solaris',
    'beos' => 'BeOS',
    'apachebench' => 'ApacheBench',
    'aix' => 'AIX',
    'irix' => 'Irix',
    'osf' => 'DEC OSF',
    'hp-ux' => 'HP-UX',
    'netbsd' => 'NetBSD',
    'bsdi' => 'BSDi',
    'openbsd' => 'OpenBSD',
    'gnu' => 'GNU/Linux',
    'unix' => 'Unknown Unix OS',
    'symbian' => 'Symbian OS'
);

// The order of this array should NOT be changed. Many browsers return
// multiple browser types so we want to identify the sub-type first.
$browsers = array(
    'OPR' => 'Opera',
    'Flock' => 'Flock',
    'Edge' => 'Spartan',
    'Chrome' => 'Chrome',
    // Opera 10+ always reports Opera/9.80 and appends Version/<real version> to the user agent string
    'Opera.*?Version' => 'Opera',
    'Opera' => 'Opera',
    'MSIE' => 'Internet Explorer',
    'Internet Explorer' => 'Internet Explorer',
    'Trident.* rv' => 'Internet Explorer',
    'Shiira' => 'Shiira',
    'Firefox' => 'Firefox',
    'Chimera' => 'Chimera',
    'Phoenix' => 'Phoenix',
    'Firebird' => 'Firebird',
    'Camino' => 'Camino',
    'Netscape' => 'Netscape',
    'OmniWeb' => 'OmniWeb',
    'Safari' => 'Safari',
    'Mozilla' => 'Mozilla',
    'Konqueror' => 'Konqueror',
    'icab' => 'iCab',
    'Lynx' => 'Lynx',
    'Links' => 'Links',
    'hotjava' => 'HotJava',
    'amaya' => 'Amaya',
    'IBrowse' => 'IBrowse',
    'Maxthon' => 'Maxthon',
    'Ubuntu' => 'Ubuntu Web Browser'
);

$mobiles = array(
    // legacy array, old values commented out
    'mobileexplorer' => 'Mobile Explorer',
    // 'openwave' => 'Open Wave',
    // 'opera mini' => 'Opera Mini',
    // 'operamini' => 'Opera Mini',
    // 'elaine' => 'Palm',
    'palmsource' => 'Palm',
    // 'digital paths' => 'Palm',
    // 'avantgo' => 'Avantgo',
    // 'xiino' => 'Xiino',
    'palmscape' => 'Palmscape',
    // 'nokia' => 'Nokia',
    // 'ericsson' => 'Ericsson',
    // 'blackberry' => 'BlackBerry',
    // 'motorola' => 'Motorola'
    
    // Phones and Manufacturers
    'motorola' => 'Motorola',
    'nokia' => 'Nokia',
    'palm' => 'Palm',
    'iphone' => 'Apple iPhone',
    'ipad' => 'iPad',
    'ipod' => 'Apple iPod Touch',
    'sony' => 'Sony Ericsson',
    'ericsson' => 'Sony Ericsson',
    'blackberry' => 'BlackBerry',
    'cocoon' => 'O2 Cocoon',
    'blazer' => 'Treo',
    'lg' => 'LG',
    'amoi' => 'Amoi',
    'xda' => 'XDA',
    'mda' => 'MDA',
    'vario' => 'Vario',
    'htc' => 'HTC',
    'samsung' => 'Samsung',
    'sharp' => 'Sharp',
    'sie-' => 'Siemens',
    'alcatel' => 'Alcatel',
    'benq' => 'BenQ',
    'ipaq' => 'HP iPaq',
    'mot-' => 'Motorola',
    'playstation portable' => 'PlayStation Portable',
    'playstation 3' => 'PlayStation 3',
    'playstation vita' => 'PlayStation Vita',
    'hiptop' => 'Danger Hiptop',
    'nec-' => 'NEC',
    'panasonic' => 'Panasonic',
    'philips' => 'Philips',
    'sagem' => 'Sagem',
    'sanyo' => 'Sanyo',
    'spv' => 'SPV',
    'zte' => 'ZTE',
    'sendo' => 'Sendo',
    'nintendo dsi' => 'Nintendo DSi',
    'nintendo ds' => 'Nintendo DS',
    'nintendo 3ds' => 'Nintendo 3DS',
    'wii' => 'Nintendo Wii',
    'open web' => 'Open Web',
    'openweb' => 'OpenWeb',
    
    // Operating Systems
    'android' => 'Android',
    'symbian' => 'Symbian',
    'SymbianOS' => 'SymbianOS',
    'elaine' => 'Palm',
    'series60' => 'Symbian S60',
    'windows ce' => 'Windows CE',
    
    // Browsers
    'obigo' => 'Obigo',
    'netfront' => 'Netfront Browser',
    'openwave' => 'Openwave Browser',
    'mobilexplorer' => 'Mobile Explorer',
    'operamini' => 'Opera Mini',
    'opera mini' => 'Opera Mini',
    'opera mobi' => 'Opera Mobile',
    'fennec' => 'Firefox Mobile',
    
    // Other
    'digital paths' => 'Digital Paths',
    'avantgo' => 'AvantGo',
    'xiino' => 'Xiino',
    'novarra' => 'Novarra Transcoder',
    'vodafone' => 'Vodafone',
    'docomo' => 'NTT DoCoMo',
    'o2' => 'O2',
    
    // Fallback
    'mobile' => 'Generic Mobile',
    'wireless' => 'Generic Mobile',
    'j2me' => 'Generic Mobile',
    'midp' => 'Generic Mobile',
    'cldc' => 'Generic Mobile',
    'up.link' => 'Generic Mobile',
    'up.browser' => 'Generic Mobile',
    'smartphone' => 'Generic Mobile',
    'cellphone' => 'Generic Mobile'
);

// There are hundreds of bots but these are the most common.
$robots = array(
    'googlebot' => 'Googlebot',
    'msnbot' => 'MSNBot',
    'baiduspider' => 'Baiduspider',
    'bingbot' => 'Bing',
    'slurp' => 'Inktomi Slurp',
    'yahoo' => 'Yahoo',
    'ask jeeves' => 'Ask Jeeves',
    'fastcrawler' => 'FastCrawler',
    'infoseek' => 'InfoSeek Robot 1.0',
    'lycos' => 'Lycos',
    'yandex' => 'YandexBot',
    'mediapartners-google' => 'MediaPartners Google',
    'CRAZYWEBCRAWLER' => 'Crazy Webcrawler',
    'adsbot-google' => 'AdsBot Google',
    'feedfetcher-google' => 'Feedfetcher Google',
    'curious george' => 'Curious George',
    'ia_archiver' => 'Alexa Crawler',
    'MJ12bot' => 'Majestic-12',
    'Uptimebot' => 'Uptimebot'
);
